In electronically commutated DC motors, it is necessary to determine the rotor position in order to insure a correct commutation. This is particularly difficult when the motor is at rest because there is no motion-induced back emf (electromotive force) to provide an indication of the commutation points. Without such information, such a motor at rest may start up in the reverse direction. In certain applications of this type of motor, starting in the reverse direction can be very undesirable. One example of such an application is use of the motor as a spindle drive motor in a hard disk drive. It will be understood, however, that this type of motor is not limited to use in a hard disk drive.
Heretofore, many techniques have been used to determine the starting rotor position of brushless DC motors. For example, U.S. Pat. No. 3,909,688 to Blaschke et al., discloses that before starting a motor, a voltage step is applied to the excitation winding of the motor with the stator windings turned off. The voltage step is also applied to a simulation circuit that simulates the motor. A signal representing an assumed rotor angle stored in a counter is also applied to the simulation circuit. A measurement is made of the voltage induced in the stator that is indicative of the angular position of the stator voltage vector. A measurement is made of the voltage produced by the simulation circuit that is indicative of the simulated stator voltage vector. The angular difference between the measured angular position of the stator voltage vector and the measured angular position of the simulated stator voltage vector is determined. The count of the counter is changed until the difference between the measured angular position and the angular position of the simulated stator voltage vector agree. If the assumed rotor angle as represented by the count in the counter is incorrect, an angular difference will be computed. This angular difference is used to correct the counter to bring the angle stored therein into agreement with the actual angle. When that occurs, the initial rotor angle is known, and the motor is then ready for starting.
Other techniques that have been used for determining rotor position include use of an absolute position sensor, such as an absolute encoder or resolver, and Hall-effect sensors. However, all of the foregoing prior art techniques have disadvantages relating to measurement reliability and precision, size and cost, especially in small motor packages such as those found in hard disk drives, for example.
Since there are so many disadvantages involved in using position sensors such as Hall-effect sensors, many different solutions to indirect position detection not requiring sensors have been developed. In particular, U.S. Pat. Nos. 5,001,405 and 4,992,710, both of which are assigned to the assignee hereof, describe techniques for determining rotor position at start without using encoders, resolvers or Hall-effect sensors. Current pulses are injected into different motor phases, taken alone or in a combination of two phases. Each phase or pair of phases is energized by two pulses of opposite polarity. The sign of the difference between the individual voltages is detected and each induced voltage is measured after a predetermined time, T. After a succession of these tests are performed, a table of results is provided for determining the position of the rotor with respect to the motor phases. Thus, the correct polarity for reliably starting the motor in the proper direction is determined.
Once rotor starting position is reliably and accurately determined in such motors, rotor torque is produced by sequentially applying current to the stator or field windings.
In U.S. Pat. No. 5,117,165, assigned to the assignee hereof, torque in the rotor is developed by applying long duration current pulses to a combination of motor phases based on rotor position. The duration of the pulses produce sustained torque. The alternating sequences of determining instantaneous rotor position and applying long duration current pulses to selected phases continues until the motor has reached medium speed. Once the rotor begins to turn, the back emf induced in the windings thereby may be measured to detect the commutation points and control its rotational speed. In U.S. Pat. No. 5,245,256, also assigned to the assignee hereof, a system for rotor speed control without the use of conventional rotor position location devices is described. The speed of the motor is determined using the back emf zero-crossings, measured only on complete rotor revolutions. The desired nominal speed is monitored by comparing the measured speed with the desired speed, and adjusting motor current accordingly.
The present inventor, John C. Dunfield, holds U.S. Pat. Nos. 5,028,852 and 5,254,914, also assigned to the assignee of the present invention. The '852 patent teaches using a time differential method to measure motor position. Current pulses are injected into different motor phases, taken alone or in a combination of two phases. Each phase or pair of phases is energized by two pulses of opposite polarity. The time that it takes each of the current pulses to reach a predetermined threshold level is measured. The times are compared in a comparator. If the negative current takes the longer time to reach the predetermined threshold level, then the result is indicated as a negative sign. Conversely, if the positive current takes the longer time to reach the predetermined threshold level, then the result is indicated as a positive sign. After a succession of these test is performed, a table of results is provided for determining the position of the rotor with respect to the motor phases. Thus, the correct polarity for reliably starting the motor in the proper direction is determined.
The '914 patent is similar to the '852 patent, except that it measures the induced voltage in a non-energized winding. Thus, rotor position is detected by using a mutual inductance method. The present invention is an extension of inventions disclosed in both of the '852 and '914 patents.